home *** CD-ROM | disk | FTP | other *** search
/ PC Answers 2003 September / PC Answers September 2003.iso / Software / freeware / pixeltoolbox / Setup.exe / Main / PixelToolbox.exe / PixelToolbox.dxr / Scripts_91_1bit pattern gui scripts.ls < prev    next >
Encoding:
Text File  |  2002-06-08  |  13.8 KB  |  304 lines

  1. global gSize, gCast, gPatternListBoxHeight, gNewPatternName, myCurrentImage, myCurrentPreview, gMyFontStyle, gTextAntialias
  2.  
  3. on loadPatterns
  4.   osCheck = baVersion("os")
  5.   if (osCheck = "WinNT") or (osCheck = "Win2000") or (osCheck = "WinXP") then
  6.     loadPatternsNT()
  7.   else
  8.     fileioObject = new(xtra("fileio"))
  9.     openFile(fileioObject, baSysFolder("windows") & "control.ini", 0)
  10.     myText = readFile(fileioObject)
  11.     errorCode = status(fileioObject)
  12.     if errorCode <> 0 then
  13.       alert("Status:" & error(fileioObject, errorCode))
  14.     end if
  15.     closeFile(fileioObject)
  16.     fileioObject = VOID
  17.     the itemDelimiter = "["
  18.     repeat with X = 1 to the number of items in myText
  19.       if item X of myText contains "Patterns]" then
  20.         put item X of myText into field "pattern values"
  21.         next repeat
  22.       end if
  23.       put EMPTY into item X of myText
  24.     end repeat
  25.     myText = VOID
  26.     repeat with X = 1 to the number of lines in field "pattern values"
  27.       if char 1 of line X of field "pattern values" = numToChar(10) then
  28.         delete char 1 of line X of field "pattern values"
  29.       end if
  30.     end repeat
  31.     repeat with X = 1 to the number of lines in field "pattern values"
  32.       if line X of field "pattern values" = EMPTY then
  33.         delete line X of field "pattern values"
  34.       end if
  35.     end repeat
  36.     delete line 1 of field "pattern values"
  37.     if the last line in field "pattern values" = EMPTY then
  38.       delete char -30003 of field "pattern values"
  39.     end if
  40.     myPatternList = []
  41.     myPatternList.sort()
  42.     repeat with X = 1 to the number of lines in field "pattern values"
  43.       myPatternList.add(line X of field "pattern values")
  44.     end repeat
  45.     put getAt(myPatternList, 1) into field "pattern values"
  46.     repeat with X = 2 to myPatternList.count
  47.       put RETURN & getAt(myPatternList, X) after field "pattern values"
  48.     end repeat
  49.     myPatternList = VOID
  50.     the itemDelimiter = "="
  51.     repeat with X = 1 to the number of lines in field "pattern values"
  52.       put RETURN & item 1 of line X of field "pattern values" after field "pattern list"
  53.     end repeat
  54.     delete line 1 of field "pattern list"
  55.     put member("pattern list").text.line[1] into field "current pattern"
  56.     put field("pattern list") into field "pattern screen list"
  57.   end if
  58. end
  59.  
  60. on loadPatternsNT
  61.   myText = baRegValueList("Control Panel\Patterns", "HKEY_CURRENT_USER")
  62.   myText.sort()
  63.   put "(None)" into field "pattern list"
  64.   put "(None)=(None)" into field "pattern values"
  65.   repeat with i = 1 to myText.count
  66.     put RETURN & myText[i] after field "pattern list"
  67.     put RETURN & myText[i] & "=" & baReadRegString("Control Panel\Patterns", myText[i], "Error", "HKEY_CURRENT_USER") after field "pattern values"
  68.   end repeat
  69.   myText = VOID
  70.   put member("pattern list").text.line[1] into field "current pattern"
  71.   put field("pattern list") into field "pattern screen list"
  72. end
  73.  
  74. on saveAs1bitPattern
  75.   rows = [[], [], [], [], [], [], [], []]
  76.   Y = -1
  77.   repeat with r = 1 to 8
  78.     X = -1
  79.     Y = Y + 1
  80.     repeat with c = 1 to 8
  81.       X = X + 1
  82.       testTone = member("8x8").image.getPixel(X, Y)
  83.       if testTone = paletteIndex(0) then
  84.         rows[r][c] = 0
  85.         next repeat
  86.       end if
  87.       rows[r][c] = 1
  88.     end repeat
  89.   end repeat
  90.   dec1 = integer((rows[1][1] * power(2, 7)) + (rows[1][2] * power(2, 6)) + (rows[1][3] * power(2, 5)) + (rows[1][4] * power(2, 4)) + (rows[1][5] * power(2, 3)) + (rows[1][6] * power(2, 2)) + (rows[1][7] * power(2, 1)) + (rows[1][8] * power(2, 0)))
  91.   dec2 = integer((rows[2][1] * power(2, 7)) + (rows[2][2] * power(2, 6)) + (rows[2][3] * power(2, 5)) + (rows[2][4] * power(2, 4)) + (rows[2][5] * power(2, 3)) + (rows[2][6] * power(2, 2)) + (rows[2][7] * power(2, 1)) + (rows[2][8] * power(2, 0)))
  92.   dec3 = integer((rows[3][1] * power(2, 7)) + (rows[3][2] * power(2, 6)) + (rows[3][3] * power(2, 5)) + (rows[3][4] * power(2, 4)) + (rows[3][5] * power(2, 3)) + (rows[3][6] * power(2, 2)) + (rows[3][7] * power(2, 1)) + (rows[3][8] * power(2, 0)))
  93.   dec4 = integer((rows[4][1] * power(2, 7)) + (rows[4][2] * power(2, 6)) + (rows[4][3] * power(2, 5)) + (rows[4][4] * power(2, 4)) + (rows[4][5] * power(2, 3)) + (rows[4][6] * power(2, 2)) + (rows[4][7] * power(2, 1)) + (rows[4][8] * power(2, 0)))
  94.   dec5 = integer((rows[5][1] * power(2, 7)) + (rows[5][2] * power(2, 6)) + (rows[5][3] * power(2, 5)) + (rows[5][4] * power(2, 4)) + (rows[5][5] * power(2, 3)) + (rows[5][6] * power(2, 2)) + (rows[5][7] * power(2, 1)) + (rows[5][8] * power(2, 0)))
  95.   dec6 = integer((rows[6][1] * power(2, 7)) + (rows[6][2] * power(2, 6)) + (rows[6][3] * power(2, 5)) + (rows[6][4] * power(2, 4)) + (rows[6][5] * power(2, 3)) + (rows[6][6] * power(2, 2)) + (rows[6][7] * power(2, 1)) + (rows[6][8] * power(2, 0)))
  96.   dec7 = integer((rows[7][1] * power(2, 7)) + (rows[7][2] * power(2, 6)) + (rows[7][3] * power(2, 5)) + (rows[7][4] * power(2, 4)) + (rows[7][5] * power(2, 3)) + (rows[7][6] * power(2, 2)) + (rows[7][7] * power(2, 1)) + (rows[7][8] * power(2, 0)))
  97.   dec8 = integer((rows[8][1] * power(2, 7)) + (rows[8][2] * power(2, 6)) + (rows[8][3] * power(2, 5)) + (rows[8][4] * power(2, 4)) + (rows[8][5] * power(2, 3)) + (rows[8][6] * power(2, 2)) + (rows[8][7] * power(2, 1)) + (rows[8][8] * power(2, 0)))
  98.   rows = VOID
  99.   decimalSet = dec1 & " " & dec2 & " " & dec3 & " " & dec4 & " " & dec5 & " " & dec6 & " " & dec7 & " " & dec8
  100.   writePattern = baWriteIni("Patterns", gNewPatternName, decimalSet, baSysFolder("windows") & "control.ini")
  101.   if writePattern = 0 then
  102.     alert("Not able to save pattern to disk.")
  103.   else
  104.     baFlushIni(baSysFolder("windows") & "control.ini")
  105.     if sprite(the currentSpriteNum) = sprite(37) then
  106.       setDsktop = baSetPattern(gNewPatternName, decimalSet)
  107.       if setDsktop = 0 then
  108.         alert("Not able to set desktop pattern.")
  109.       end if
  110.     end if
  111.   end if
  112. end
  113.  
  114. on namePatternDialog
  115.   global gMUI
  116.   gMUI = new(xtra("mui"))
  117.   windowProps = GetWindowPropList(gMUI)
  118.   windowProps.type = #normal
  119.   windowProps.name = "Save As"
  120.   windowProps.callback = "myCallbackPattern"
  121.   windowProps.width = 200
  122.   windowProps.height = 100
  123.   windowProps.Mode = #pixel
  124.   list = []
  125.   element = GetItemPropList(gMUI)
  126.   element.type = #label
  127.   element.value = "Pattern Name:"
  128.   element.locH = 5
  129.   element.locV = 5
  130.   element.width = 100
  131.   element.height = 20
  132.   add(list, element)
  133.   element = GetItemPropList(gMUI)
  134.   element.type = #editText
  135.   element.value = EMPTY
  136.   element.locH = 5
  137.   element.locV = 30
  138.   element.width = 190
  139.   element.height = 20
  140.   add(list, element)
  141.   element = GetItemPropList(gMUI)
  142.   element.type = #defaultPushButton
  143.   element.title = "OK"
  144.   element.locH = 20
  145.   element.locV = 65
  146.   element.width = 60
  147.   element.height = 20
  148.   add(list, element)
  149.   element = GetItemPropList(gMUI)
  150.   element.type = #cancelPushButton
  151.   element.title = "Cancel"
  152.   element.locH = 120
  153.   element.locV = 65
  154.   element.width = 60
  155.   element.height = 20
  156.   add(list, element)
  157.   Initialize(gMUI, [#windowPropList: windowProps, #windowItemList: list])
  158.   Run(gMUI)
  159. end
  160.  
  161. on myCallbackPattern action, elementNumber, elementList
  162.   global gMUI
  163.   if action = #itemChanged then
  164.     gNewPatternName = elementList.value
  165.   end if
  166.   if (action = #itemClicked) and (elementList.title = "OK") then
  167.     if (gNewPatternName = EMPTY) or (gNewPatternName = VOID) then
  168.       alert("Please type a name in the field.")
  169.     else
  170.       if gNewPatternName contains "=" then
  171.         alert("The character " & QUOTE & "=" & QUOTE & " is not allowed in a pattern name.")
  172.       else
  173.         stop(gMUI, 0)
  174.         gMUI = VOID
  175.         saveAs1bitPattern()
  176.         put EMPTY into field "pattern list"
  177.         loadPatterns()
  178.         gPatternListBoxHeight = (member("pattern list").lineCount * member("pattern list").lineHeight) - (9 * member("pattern list").lineHeight)
  179.         hilite char 1 to member("pattern list").text.line[1].length + 1 of field "pattern list"
  180.         sprite(80).locV = 55
  181.         member("pattern preview").image.fill(member("pattern preview").rect, paletteIndex(0))
  182.         member("pattern temp").image.fill(member("pattern temp").rect, paletteIndex(0))
  183.         member("revert - 8").image = duplicate(member("8x8").image)
  184.         put gNewPatternName into field "file status"
  185.         gNewPatternName = VOID
  186.       end if
  187.     end if
  188.   else
  189.     if (action = #itemClicked) and (elementList.title = "Cancel") then
  190.       stop(gMUI, 0)
  191.       gMUI = VOID
  192.       gNewPatternName = VOID
  193.     end if
  194.   end if
  195. end
  196.  
  197. on save1bitPattern
  198.   if field("file status") = EMPTY then
  199.     namePatternDialog()
  200.   else
  201.     rows = [[], [], [], [], [], [], [], []]
  202.     Y = -1
  203.     repeat with r = 1 to 8
  204.       X = -1
  205.       Y = Y + 1
  206.       repeat with c = 1 to 8
  207.         X = X + 1
  208.         testTone = member("8x8").image.getPixel(X, Y)
  209.         if testTone = paletteIndex(0) then
  210.           rows[r][c] = 0
  211.           next repeat
  212.         end if
  213.         rows[r][c] = 1
  214.       end repeat
  215.     end repeat
  216.     dec1 = integer((rows[1][1] * power(2, 7)) + (rows[1][2] * power(2, 6)) + (rows[1][3] * power(2, 5)) + (rows[1][4] * power(2, 4)) + (rows[1][5] * power(2, 3)) + (rows[1][6] * power(2, 2)) + (rows[1][7] * power(2, 1)) + (rows[1][8] * power(2, 0)))
  217.     dec2 = integer((rows[2][1] * power(2, 7)) + (rows[2][2] * power(2, 6)) + (rows[2][3] * power(2, 5)) + (rows[2][4] * power(2, 4)) + (rows[2][5] * power(2, 3)) + (rows[2][6] * power(2, 2)) + (rows[2][7] * power(2, 1)) + (rows[2][8] * power(2, 0)))
  218.     dec3 = integer((rows[3][1] * power(2, 7)) + (rows[3][2] * power(2, 6)) + (rows[3][3] * power(2, 5)) + (rows[3][4] * power(2, 4)) + (rows[3][5] * power(2, 3)) + (rows[3][6] * power(2, 2)) + (rows[3][7] * power(2, 1)) + (rows[3][8] * power(2, 0)))
  219.     dec4 = integer((rows[4][1] * power(2, 7)) + (rows[4][2] * power(2, 6)) + (rows[4][3] * power(2, 5)) + (rows[4][4] * power(2, 4)) + (rows[4][5] * power(2, 3)) + (rows[4][6] * power(2, 2)) + (rows[4][7] * power(2, 1)) + (rows[4][8] * power(2, 0)))
  220.     dec5 = integer((rows[5][1] * power(2, 7)) + (rows[5][2] * power(2, 6)) + (rows[5][3] * power(2, 5)) + (rows[5][4] * power(2, 4)) + (rows[5][5] * power(2, 3)) + (rows[5][6] * power(2, 2)) + (rows[5][7] * power(2, 1)) + (rows[5][8] * power(2, 0)))
  221.     dec6 = integer((rows[6][1] * power(2, 7)) + (rows[6][2] * power(2, 6)) + (rows[6][3] * power(2, 5)) + (rows[6][4] * power(2, 4)) + (rows[6][5] * power(2, 3)) + (rows[6][6] * power(2, 2)) + (rows[6][7] * power(2, 1)) + (rows[6][8] * power(2, 0)))
  222.     dec7 = integer((rows[7][1] * power(2, 7)) + (rows[7][2] * power(2, 6)) + (rows[7][3] * power(2, 5)) + (rows[7][4] * power(2, 4)) + (rows[7][5] * power(2, 3)) + (rows[7][6] * power(2, 2)) + (rows[7][7] * power(2, 1)) + (rows[7][8] * power(2, 0)))
  223.     dec8 = integer((rows[8][1] * power(2, 7)) + (rows[8][2] * power(2, 6)) + (rows[8][3] * power(2, 5)) + (rows[8][4] * power(2, 4)) + (rows[8][5] * power(2, 3)) + (rows[8][6] * power(2, 2)) + (rows[8][7] * power(2, 1)) + (rows[8][8] * power(2, 0)))
  224.     rows = VOID
  225.     decimalSet = dec1 & " " & dec2 & " " & dec3 & " " & dec4 & " " & dec5 & " " & dec6 & " " & dec7 & " " & dec8
  226.     writePattern = baWriteIni("Patterns", the text of field "file status", decimalSet, baSysFolder("windows") & "control.ini")
  227.     if writePattern = 0 then
  228.       alert("Not able to save pattern to disk.")
  229.     else
  230.       baFlushIni(baSysFolder("windows") & "control.ini")
  231.       member("revert - 8").image = duplicate(member("8x8").image)
  232.       the itemDelimiter = "="
  233.       repeat with X = 1 to the number of lines in field "pattern values"
  234.         if item 1 of line X of field "pattern values" = the text of field "file status" then
  235.           put string(decimalSet) into item 2 of line X of field "pattern values"
  236.           exit repeat
  237.         end if
  238.       end repeat
  239.       if sprite(the currentSpriteNum) = sprite(37) then
  240.         setDsktop = baSetPattern(the text of field "file status", decimalSet)
  241.         if setDsktop = 0 then
  242.           alert("Not able to set desktop pattern.")
  243.         end if
  244.       end if
  245.     end if
  246.   end if
  247. end
  248.  
  249. on export1bitPattern
  250.   SaveFileName = baGetFilename("save", EMPTY, "untitled", "Bitmap files (*.bmp)|*.bmp", 2 + 4 + 8 + 32 + 524288, "Export Pattern", 0, -1, 0)
  251.   if SaveFileName = EMPTY then
  252.     pass()
  253.   else
  254.     ImageExportXtra = new(xtra("RAVIMAGEEXPORT"))
  255.     if objectp(ImageExportXtra) = 0 then
  256.       alert("Failed to export pattern!")
  257.     else
  258.       RavRegisterImageExport(ImageExportXtra, "R100-72-57970312")
  259.       member("8x8x1").image.copyPixels(member("8x8").image, member("8x8").rect, member("8x8").rect)
  260.       if RavSaveCastMemberFromName(ImageExportXtra, "8x8x1", SaveFileName, 0, 0, 1, #ravBMP) = #false then
  261.         alert("Error: " & RavGetProp(ImageExportXtra, #ravLastErrorCodeString))
  262.       end if
  263.       ImageExportXtra = 0
  264.     end if
  265.   end if
  266. end
  267.  
  268. on new1bitPattern
  269.   if sprite(1).pUndoTrigger then
  270.     if field("file status") = EMPTY then
  271.       newDocCheck = baMsgBox("Save current project before starting a new one?", "Save First?", "YesNoCancel", "Question", 3)
  272.       if newDocCheck = "Yes" then
  273.         namePatternDialog()
  274.       else
  275.         if newDocCheck = "Cancel" then
  276.           pass()
  277.         end if
  278.       end if
  279.     else
  280.       newDocCheck = baMsgBox("Save changes to current project before starting a new one?", "Save First?", "YesNoCancel", "Question", 3)
  281.       if newDocCheck = "Yes" then
  282.         save1bitPattern()
  283.       else
  284.         if newDocCheck = "Cancel" then
  285.           pass()
  286.         end if
  287.       end if
  288.     end if
  289.   end if
  290.   repeat with i = member("preview", "1bit").number to member("preview", "1bit").number + 8
  291.     member(i).image.fill(member(i).rect, paletteIndex(0))
  292.   end repeat
  293.   put EMPTY into field "file status"
  294.   member("1st color", "1bit").image.fill(member("1st color", "1bit").rect, paletteIndex(255))
  295.   member("2nd color", "1bit").image.fill(member("2nd color", "1bit").rect, paletteIndex(0))
  296.   member("pattern preview").image.fill(member("pattern preview").rect, paletteIndex(0))
  297.   member("pattern temp").image.fill(member("pattern temp").rect, paletteIndex(0))
  298.   member("pattern list").scrollTop = 0
  299.   clearGlobals()
  300.   gMyFontStyle = [#plain]
  301.   gTextAntialias = 0
  302.   go("new2")
  303. end
  304.